6 research outputs found

    Memory Monitoring in a Multi-tenant OSGi Execution Environment

    Get PDF
    International audienceSmart Home market players aim to deploy component-based and service-oriented applications from untrusted third party providers on a single OSGi execution environment. This creates the risk of resource abuse by buggy and malicious applications, which raises the need for resource monitoring mechanisms. Existing resource monitoring solutions either are too intrusive or fail to identify the relevant resource consumer in numerous multi-tenant situations. This paper proposes a system to monitor the memory consumed by each tenant, while allowing them to continue communicating di-rectly to render services. We propose a solution based on a list of configurable resource accounting rules between tenants, which is far less intrusive than existing OSGi monitoring sys-tems. We modified an experimental Java Virtual Machine in order to provide the memory monitoring features for the multi-tenant OSGi environment. Our evaluation of the mem-ory monitoring mechanism on the DaCapo benchmarks shows an overhead below 46%

    Incinerator - Eliminating stale references in dynamic OSGi applications

    Get PDF
    International audienceJava class loaders are commonly used in application servers to load, unload and update a set of classes as a unit. However, unloading or updating a class loader can introduce stale references to the objects of the outdated class loader. A stale reference leads to a memory leak and, for an update, to an inconsistency between the outdated classes and their replacements. To detect and eliminate stale references, we propose Incinerator, a Java virtual machine extension that introduces the notion of an outdated class loader. Incinerator detects stale references and sets them to null during a garbage collection cycle. We evaluate Incinerator in the context of the OSGi framework and show that Incinerator correctly detects and eliminates stale references, including a bug in Knopflerfish. We also evaluate the performance of Incinerator with the DaCapo benchmark on VMKit and show that Incinerator has an overhead of at most 3.3

    Preventing Memory and Information LeakageIncinerator – Eliminating Stale References in Dynamic OSGi Applications

    Get PDF
    International audienceJava class loaders are commonly used in applicationservers to load, unload and update a set of classes as a unit.However, unloading or updating a class loader can introducestale references to the objects of the outdated class loader. Astale reference leads to a memory leak and, for an update,to an inconsistency between the outdated classes and theirreplacements. To detect and eliminate stale references, we proposeIncinerator, a Java virtual machine extension that introducesthe notion of an outdated class loader. Incinerator detects stalereferences and sets them to null during a garbage collection cycle.We evaluate Incinerator in the context of the OSGi frameworkand show that Incinerator correctly detects and eliminates stalereferences, including a bug in Knopflerfish. We also evaluatethe performance of Incinerator with the DaCapo benchmark onVMKit and show that Incinerator has an overhead of at most3.3%

    Gestion des conflits de partage de ressources dans un environnement logiciel embarqué ouvert

    No full text
    Our homes become smart thanks to devices providing services (security, energy efficiency,…). Untrusted service providers want to take advantage of the smart home by developing services hosted by an embedded smart home gateway. The gateway should be robust enough to handle software problems. Sharing resources of the gateway between service providers allows providing richer services but raises risks of resource sharing conflicts. We addresses the problem of resource sharing conflicts in the smart home gateway, by prevention when possible, and by detection and resolution otherwise. Our first contribution "Jasmin" is a middleware to develop, deploy and isolate native embedded component-based and service-oriented applications. Jasmin uses Linux containers for lightweight isolation. Our second contribution "Incinerator" is a subsystem in the Java Virtual Machine (JVM) aiming to resolve the problem of Java stale references, which cause significant memory leaks in an OSGi-based smart home gateway, hence increasing the risks of memory sharing conflicts. Incinerator detects and eliminates stale references. In order to detect memory sharing conflicts, we propose our third contribution: memory monitoring subsystem in the JVM. The system accurately accounts for resources consumed during cross-application interactions, and provides snapshots of memory usage statistics for the different service providers sharing the gateway.Nos maisons sont intelligentes grâce aux appareils fournissant des services (sécurité, efficacité énergétique,...). Des fournisseurs de services non fiables veulent profiter de la maison intelligente en développant des services hébergés dans une passerelle domotique embarquée. Cette passerelle doit être suffisamment robuste contre les problèmes logiciels. Partager les ressources de passerelle entre applications permet de fournir des services riches, mais provoque des risques de conflits de partage de ressources. Nous abordons le problème des conflits de partage des ressources dans la passerelle domotique, investiguant la prévention lorsque possible, et la détection et la résolution sinon. Notre première contribution «Jasmin» est un intergiciel pour développer, déployer et isoler les applications embarqués natives à base de composants et orientées services. Jasmin utilise les conteneurs Linux pour une isolation à faible coût. Notre seconde contribution «Incinerator» est un système dans la machine virtuelle Java (JVM) qui résout le problème des références obsolètes en Java, qui causent des fuites mémoire importantes en OSGi, augmentant ainsi les risques de conflits de partage de mémoire. Incinerator détecte et élimine les références obsolètes. Pour détecter les conflits de partage de mémoire, nous présentons la troisième contribution : système de surveillance mémoire dans la JVM. Le système compte précisément les ressources consommées pendant les interactions entre applications et fournit des statistiques d'utilisation de mémoire pour les différents fournisseurs de services partageant la passerelle

    Adaptive Monitoring of End-user OSGi-based Home Boxes

    No full text
    International audienceIn-production performance monitoring is required for dynamic and modular systems open to third-party applications such as the OSGi-based smart home box that home actors envision today. Existing approaches are not suitable for in-production monitoring as they generally induce a strong persistent overhead. This paper proposes a progressive and localized monitoring system that is able to dynamically activate/deactivate and tune the accuracy of monitoring mechanisms depending on detected performance issues. In particular, it proposes to build a proxy-aware service registry in order to inject proxies on-the- y without stopping bundles and it advocates the use of localized sampling. Our evaluation shows that the overhead of our monitoring system is only 2% when idle and comparable with traditional systems when completely active(around 20%)

    Jasmin: An Alternative for Secure Modularity Inside the Digital Home

    No full text
    International audienceThe Digital Home (DH) is emerging as a distributed platform hosting services for the end user. This promising home environment depends on availability of numerous value-added services for the DH. Therefore DH implies to fullfil several requirements. (i) New services should easily invoke existing ones so as to build rich services. (ii) The Platform should be adapted to resource-constrained DH devices. (iii) Service providers should easily develop and deploy services onto the DH platform that must be shared between many providers without any security and reliability flaws. We propose Jasmin: a DH middleware following the SOA paradigm [9] to host applications based on the MIND framework that implements the Fractal [3] component model. Applications run inside isolation containers with selectable isolation levels on top of an OS abstraction layer. Our evaluation shows that Jasmin is suitable for legacy code reuse, urges clean design, and automates dynamic application deployment. Jasmin selected virtualization container technology to implement the highest level of isolation containers. Jasmin not only has a low resource usage, but also incurs a very low overhead on hosted applications, making it appropriate for embedded environments
    corecore